
//将具体芯片底层函数编写在该文件中，即可实现引脚的移植
#include "user_gpio.h"
#include "string.h"

/*************************************************
  Function:       GPIO_Init
  Description:    IO初始化
  Input:          equipment：设备结构体
  Return:         无
  other：         设置的信息有：IO口方向、输出模式、复用有效:
                  默认：无上、下拉电阻
*************************************************/
void GPIO_Init(IO_EQUIPMENT equipment)
{
    ;
}

/*************************************************
  Function:       GPIO_Base_Input_Init
  Description:    基础输入IO口初始化
  Input:          equipment：设备结构体
  Return:         无
  other：         默认的信息：输入、无复用、无上、下拉电阻
*************************************************/
void GPIO_Base_Input_Init(IO_EQUIPMENT equipment)
{
    ;
}

/*************************************************
  Function:       GPIO_Base_Input_Init
  Description:    基础输出IO口初始化
  Input:          equipment：设备结构体
  Return:         无
  other：         默认的信息：输出、无复用、推挽输出、无上、下拉电阻
*************************************************/
void GPIO_Base_Output_Init(IO_EQUIPMENT equipment)
{
    ;
}

/*************************************************
  Function:       GPIO_Val_Read
  Description:    读取GPIO口的输入电平
  Input:          io_equipment  要读取的设备
  Return:         读取到的电平值
  other：
*************************************************/
uint32_t GPIO_Val_Read(IO_EQUIPMENT io_equipment)
{
	;
}

/*************************************************
  Function:       GPIO_Val_Check
  Description:    查看GPIO口的输出电平
  Input:          io_equipment  要读取的设备
  Return:         当前引脚的电平值
  other：
*************************************************/
uint32_t GPIO_Val_Check(IO_EQUIPMENT io_equipment)
{
	;
}

/*************************************************
  Function:       GPIO_Set
  Description:    设置GPIO口的输出电平
  Input:          io_equipment：设置的设备
                  val：输出的值
  Return:         无
  other：         设置已做处理，无需担心重复调用设置函数
*************************************************/
void GPIO_Set(IO_EQUIPMENT* io_equipment, int val)
{
	uint32_t re = 0;
	re = GPIO_Val_Check(*io_equipment);//读取输出电平
	if(re != val)  //输出电平与设置电平不同
	{
		if(val == LOW)
		{
			;
		}
		else if(val == HIGH)
		{
			;
		}
		io_equipment->State = val;
	}
}

/*************************************************
  Function:       GPIO_Toggle
  Description:    设置GPIO口的输出电平
  Input:          io_equipment：设置的设备
                  val：输出的值
  Return:         无
  other：         设置已做处理，无需担心重复调用设置函数
*************************************************/
void GPIO_Toggle(IO_EQUIPMENT* io_equipment)
{
	uint32_t re = 0;
	re = !GPIO_Val_Check(*io_equipment);//读取输出电平
	if(re == LOW)
	{
		;
	}
	else if(re == HIGH)
	{
		;
	}
	io_equipment->State = re;
}

/*************************************************
  Function:       GPIO_Set_Mode
  Description:    设置GPIO口的模式
  Input:          io_equipment：设置的设备
                  mode：模式
  Return:         无
  other：         
*************************************************/
void GPIO_Set_Mode(IO_EQUIPMENT* io_equipment, IO_MODE mode)
{
	io_equipment->mode = mode;
	;
}
